package org.zhuzx.util;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.zhuzx.util.pool.AbstractFixedPool;

/**
 * 标准时间格式器，提供yyyy-MM-dd HH:mm:ss格式的format与parse功能。
 * @author	zhuzx	2017年11月7日
 */
public class StandardDateFormat {
	
	private static final AbstractFixedPool<DateFormat> pool = new AbstractFixedPool<DateFormat>(
			HardwareVariables.CPU_THREAD_NUM) {
		protected DateFormat create() {
			return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		}
	};
	
	public static String format(Date date) {
		DateFormat df = pool.get();
		String str = df.format(date);
		pool.giveBack(df);
		return str;
	}
	
	public static Date parse(String str) {
		DateFormat df = pool.get();
		Date date;
		try {
			date = df.parse(str);
		} catch (ParseException e) {
			e.printStackTrace();
			throw new IllegalArgumentException("不是标准格式的时间字符串");
		}
		pool.giveBack(df);
		return date;
	}

}